home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / fax_sstv / gshpc12 / univbe40.doc < prev    next >
Text File  |  1993-09-18  |  11KB  |  273 lines

  1.  
  2.                          The Universal VESA VBE
  3.                          ----------------------
  4.  
  5.                    Copyright (C) 1993 Kendall Bennett
  6.                            All rights reserved.
  7.  
  8. What is it?
  9. -----------
  10.  
  11. The Universal VESA VBE is a small Terminate and Stay Resident (TSR) program
  12. that extends the video BIOS of SuperVGA video cards to make them compatible
  13. with the Video Electonics Standards Association (VESA) recommended
  14. Video BIOS Extensions (VBE).
  15.  
  16. By having a video card that has a VESA VBE compatible BIOS, or by
  17. installing this small TSR, programs that support the VESA VBE programming
  18. interface will work correctly for your SuperVGA. This helps to solve a
  19. lot of problems with compatability between different SuperVGA cards on the
  20. market. Note that this program will not take advantage of any of the
  21. acceleration features that your video card may provide.
  22.  
  23. Why use it?
  24. -----------
  25.  
  26. You may already have a VESA VBE TSR for you video card, or you video card
  27. may have a VESA VBE compatible BIOS already, so why would you want to use
  28. this program?
  29.  
  30. The simple answer is that most of the TSR's that exist today, and a lot
  31. of the not-so-new SuperVGA cards that are around implement an older version
  32. of the VESA VBE programming interface (if any at all). For this reason, some
  33. programs that use the advanced features of the new VESA VBE standard will
  34. not work with the TSR or BIOS that you currently have.
  35.  
  36. So what advanced features does this TSR provide that other's don't? The
  37. Universal VESA VBE implements the VESA VBE 1.2 programming interface,
  38. which supports the following features:
  39.  
  40.     . SuperVGA page flipping. High performance animation programs can
  41.       use your card to full potential using the VESA BIOS to implement
  42.       extended page flipping (imagine, 1024x768x16 double buffered
  43.       animation, or even 800x600x256 and 640x400x32k/64k on a 1Mb video
  44.       card!!).
  45.  
  46.     . SuperVGA virtual screens. Programs may set up a virtual display
  47.       resolution of say 1024x1024 pixels, and smoothly scroll a window
  48.       with less physical resolution around within this buffer.
  49.  
  50.     . Support for the 32k, 64k and 16 million color video modes. As well
  51.       as supporting the industry standard 16 and 256 color video
  52.       modes.
  53.  
  54.     . Speed. The bank switching code in this package tends to run faster
  55.       than the routines embedded in the VIDEO BIOS of some video cards.
  56.  
  57.     . Programs that know about the Universal VESA VBE protected mode
  58.       extensions can use the high performance protected mode programming
  59.       interface provided by this TSR.
  60.  
  61.     . Extremely small size. When the TSR is resident in your computer it
  62.       only requires about 3k of memory which is smaller than the
  63.       size of most commerical VESA VBE TSR's. It may also be loaded high
  64.       to save even more memory.
  65.  
  66. Hardware Requirements
  67. ---------------------
  68.  
  69. The Universal VESA VBE will run on any 80x86 based IBM PC compatible
  70. running MSDOS. Currently the Universal VESA VBE supports the following
  71. SuperVGA cards (note that not all of these have been fully tested):
  72.  
  73.     - ATI Technologies 18800, 28800
  74.     - Ahead A & B
  75.     - Chips & Technologies 82c451/452/453
  76.     - Everex
  77.     - Genoa Systems GVGA
  78.     - OAK Technologies OTI-037C, OTI-067, OTI-077, OTI-087
  79.     - Paradise PVGA1A, WD90C00/10/11/20/21/30/31
  80.     - NCR 77C20/21/22E
  81.     - Trident 88/8900
  82.     - Video7 V7VGA versions 1-5
  83.     - Tseng Labs ET3000, ET4000, ET4000/W32
  84.     - AcuMos AVGA2
  85.     - S3 86c911/924/801/805/928
  86.     - Advance Logic AL2101 SuperVGA
  87.     - MXIC 86010 SuperVGA
  88.     - Primus 2000 SuperVGA
  89.     - RealTek 3106 SuperVGA
  90.     - Cirrus Logic CL-GD 5420, 5422, 5424, 5426, 5428
  91.  
  92. How do I install it?
  93. --------------------
  94.  
  95. You can install the TSR from the command line, or from your autoexec.bat
  96. file. Don't worry about installing it twice, it will automatically detect
  97. if you have already installed it.
  98.  
  99. To install it simply type:
  100.  
  101.     univbe
  102.  
  103. from the command line. It will determine what type of SuperVGA card you
  104. have installed and install itself accordingly. If you wish to remove the
  105. TSR from memory after it has been installed, simply type:
  106.  
  107.     univbe -u
  108.  
  109. This will remove the program from memory, even if it was not the last
  110. TSR to be installed. However if you installed another TSR after this
  111. one that has hooked into the Int 10h interface the old TSR will cease
  112. to function.
  113.  
  114. You may also use command line options to modify the the installation
  115. process used by the program. The following is produced by typing
  116. 'univesa -h' at the command line:
  117.  
  118. Options are:
  119.     -s<name> - Force detection of SuperVGA 'name'
  120.     -c<x>    - Force detection of SuperVGA chipset (numerical id)
  121.     -m<size> - Force memory size to 'size'
  122.     -d<x>    - Force DAC type (0:VGA, 1:15 bit, 2:16 bit, 3:24 bit)
  123.     -i       - Do not perform SuperVGA detection
  124.     -q       - Quiet mode
  125.     -g       - Regenerate default .ini file
  126.     -u       - Unload the Universal VESA VBE from memory
  127.     -t       - Don't go TSR, just return the detected SuperVGA id
  128.  
  129. It is possible the SuperVGA detection code will hang the machine on old
  130. VGA/SVGA cards. You can optionally force the program to work with any
  131. combination of card, chipset, memory size and DAC, but unless you specify
  132. the -i option, unspecified values will be filled in automatically for you.
  133.  
  134. Thus you if the detection code did not correctly identify you video card
  135. configuration, you can force the TSR to work with the correct values.
  136.  
  137. For some SuperVGA cards, I have not been able to work out a solid method
  138. of detecting the amount of video memory on board. If this is the case,
  139. the Universal VESA VBE will refuse to install itself and ask that you
  140. specify the amount of video memory on your card from the command line.
  141.  
  142. The Universal VESA VBE does not provide support for any of the extended
  143. text modes that your video card may provide, but will provide support
  144. for any extended text modes supported by an underlying VESA VBE compliant
  145. BIOS. Thus if you video card already has a VBE BIOS or you install
  146. your favorite VESA VBE TSR for your video card _before_ installing the
  147. Universal VESA VBE, the Universal VESA VBE will use a pass-through
  148. mechanism to ensure the extended text modes still work correctly.
  149.  
  150. What's the .ini file for?
  151. -------------------------
  152.  
  153. For most installations, the Universal VESA VBE will automatically
  154. determine the video modes that you card supports. However on some older
  155. video cards some video modes that the Universal VESA VBE thinks are
  156. available aren't and so an error will occur if a program tries to set
  157. the video mode. The .ini file is used to remove support for those video
  158. modes. You can edit the .ini file yourself or you can get the TSR
  159. to automatically generate the default .ini file for you.
  160.  
  161. In order to generate the default .ini file for you, you must remove the
  162. TSR from memory, delete the old .ini file, re-install the TSR in memory
  163. and run the program with the -g option. The default .ini file is now
  164. generated. You should then remove the TSR again and re-install it using
  165. the values in the new .ini file. A batch file called 'makeini.bat'
  166. is provided which will do this for you.
  167.  
  168. The format of the .ini file is simple. All the video modes removed by
  169. the program are listed under the section '[remove]' in the .ini file.
  170. They are listed as the hexadecimal internal mode numbers used by the
  171. TSR (see the next section for a list of the mode numbers used). An
  172. example .ini file might be:
  173.  
  174. [remove]
  175.  
  176. 10D
  177.  
  178. Video modes supported by this TSR
  179. ---------------------------------
  180.  
  181. The Universal VESA VBE supports the VESA VBE 1.2 programming interface,
  182. which defines a number of standard video modes numbers. The new version
  183. of the VESA VBE specs will allow the vendor to extend the video numbers
  184. used to whatever values they wish, so I have taken the liberty to
  185. extend the mode numbers used by the Universal VESA VBE to include
  186. modes not originally specified in the VBE 1.2 specs, but supported by
  187. a number of popular video cards on the market. Depending on how well
  188. your applications have been written, they may or may not be able to
  189. use those modes.
  190.  
  191. The following is a list of the internal mode numbers used by the Universal
  192. VESA VBE and a description of each video mode:
  193.  
  194.     102   - 800x600 16 color
  195.     104   - 1024x768 16 color
  196.     106   - 1280x1024 16 color
  197.     11C   - 640x350 256 color
  198.     100   - 640x400 256 color
  199.     101   - 640x480 256 color
  200.     103   - 800x600 256 color
  201.     105   - 1024x768 256 color
  202.     107   - 1280x1024 256 color
  203.     10D   - 320x200 32k color
  204.     11D   - 640x350 32k color
  205.     11E   - 640x400 32k color
  206.     110   - 640x480 32k color
  207.     113   - 800x600 32k color
  208.     116   - 1024x768 32k color
  209.     119   - 1280x1024 32k color
  210.     10E   - 320x200 64k color
  211.     11F   - 640x350 64k color
  212.     120   - 640x400 64k color
  213.     111   - 640x480 64k color
  214.     114   - 800x600 64k color
  215.     117   - 1024x768 64k color
  216.     11A   - 1280x1024 64k color
  217.     10F   - 320x200 16m color
  218.     121   - 640x350 16m color
  219.     122   - 640x400 16m color
  220.     112   - 640x480 16m color
  221.     115   - 800x600 16m color
  222.     118   - 1024x768 16m color
  223.     11B   - 1280x1024 16m color
  224.  
  225. Protected mode interface
  226. ------------------------
  227.  
  228. In order to be able to write high performance programs that utilise the
  229. VESA VBE programming interface from 16 bit and 32 bit protected mode,
  230. I have provided a special interface to allow application programs to
  231. copy the bank switching and page flipping code into their own code space,
  232. so it can be executed directly as a protected mode routine.
  233.  
  234. Please refer to the code in the SuperVGA test kit to see how to use
  235. this interface.
  236.  
  237. Problems and known bugs
  238. -----------------------
  239.  
  240. The Universal VESA TSR seems to have problems with QEMM, since QEMM does
  241. something weird with the Video BIOS. In order to fix this problem,
  242. you should use the QEMM 'exclude' options to exclude the Video BIOS
  243. area. Do this by including the following in the QEMM options:
  244.  
  245.         EXCLUDE=C000-C1FF
  246.  
  247. Can I get the source code?
  248. --------------------------
  249.  
  250. Yes, the full source code for this product is available, along with a
  251. number of test programs (with source) for programming SuperVGA cards
  252. using the VESA VBE interface, called the SuperVGA Test Kit Library. You
  253. can probably download this from your local BBS, or by using ftp on the
  254. internet from Simtel20 or garbo (or one of it's mirrors). You can
  255. also ftp the latest version from:
  256.  
  257.     godzilla.cgl.rmit.oz.au (131.170.14.2): kjb/MGL/svgakt??.zip
  258.  
  259. How can I contact the Author?
  260. -----------------------------
  261.  
  262. If you have any corrections or updates to the code in this package, or
  263. you have any questions you would like asked, feel free to contact me
  264. through one of the following methods.
  265.  
  266. Internet:   kjb@citri.edu.au
  267.  
  268. Snail Mail: Kendall Bennett
  269.             15 Stevenson Street
  270.             Kew Victoria 3101
  271.             AUSTRALIA
  272.  
  273.